// 首先要有单例模式 还有媲美ES6 class继承

var tools = {
    inhert (target,origin) {
        // 圣杯模式
        var F = function () {}
        F.prototype = origin.prototype;
        target.prototype = new F();
        target.prototype.constructor = target;
    },
    extends (origin) {
        // 这个方法 模拟ES6 继承 返回一个构造函数
        var target = function (...args) {
            origin.apply(this,args); 
        };
        this.inhert(target,origin);
        return target;
    },
    singleton(origin) {
        // 传进来一个构造函数 将这个构造函数转换为一个单例模式的构造函数返回
        var instance;
        var target = function (...args) {
            if(typeof instance === 'object') {
                return instance;
            }
            instance = this;
            origin && origin.apply(this,args);
        }
        origin && this.inhert(target,origin);

        return target
    },
    getRandom (min,max) {
        return Math.floor(Math.random() * (max - min)) + min;
    } 
};
